package org.microframework.cloud.logs.service;

import org.microframework.base.core.web.page.PageQuery;
import org.microframework.cloud.logs.model.domain.LoginLog;
import org.microframework.cloud.logs.model.dto.LoginLogDTO;
import com.jfinal.plugin.activerecord.Page;

/**
 * 登录日志服务接口
 * 
 * @author zs
 * @version 1.0.0
 * @date 2024-05-21
 */
public interface ILoginLogService {

    /**
     * 记录登录成功日志
     * 
     * @param username 用户名
     * @param ipAddress IP地址
     * @param userAgent 用户代理
     * @return 是否成功
     */
    boolean recordLoginSuccess(String username, String ipAddress, String userAgent);

    /**
     * 记录登录失败日志
     * 
     * @param username 用户名
     * @param message 失败消息
     * @param ipAddress IP地址
     * @param userAgent 用户代理
     * @return 是否成功
     */
    boolean recordLoginFailure(String username, String message, String ipAddress, String userAgent);

    /**
     * 查询登录日志列表
     * 
     * @param pageQuery 分页查询参数
     * @return 分页结果
     */
    Page<LoginLogDTO> selectLoginLogList(PageQuery<LoginLog> pageQuery);

    /**
     * 清空登录日志
     * 
     * @return 是否成功
     */
    boolean cleanLoginLog();

    /**
     * 删除登录日志
     * 
     * @param ids 日志ID，多个以逗号分隔
     * @return 删除数量
     */
    int deleteLoginLogByIds(String ids);

    /**
     * 获取登录日志详情
     * 
     * @param id 日志ID
     * @return 登录日志DTO
     */
    LoginLogDTO selectLoginLogById(String id);

    /**
     * 导出登录日志
     * 
     * @param queryDTO 查询条件
     * @return 导出结果
     */
    Object exportLoginLog(LoginLogDTO queryDTO);
} 